The present invention relates to the management of one or more peripheral devices shared by one or more of stations (e.g., computers).
Computers typically have peripheral devices (e.g., printers, scanners, etc.) interconnected to the computers via the network. The peripheral devices perform tasks at the request of the computers.
In order to collect current information about the status of a peripheral device, a computer may use a management application. The application may communicate with the peripheral devices via a communication protocol, such as Simple Network Management Protocol (SNMP). Alternative communication protocols may also be used.
In the case of a printer, one type of information collected by the management application typically includes whether an interrupt has occurred at the printer, such as the printer being out of paper or ink, a paper jam occurring, etc. The occurrence of an interrupt is sometimes referred to as an alert.
By discovering that an alert has occurred, an operator of a computer interconnected to the peripheral device, may take steps to resolve the interrupt to allow the routine operations of the peripheral device to resume. Alternatively, a computer interconnected with the printer may be able to resolve the alert without the intervention of an operator.
The management applications may collect status information (i.e., determine if an interrupt has occurred) from the peripheral device by periodically sending an inquiry to each device. The method of periodically requesting the information is commonly known as polling. The period of time between inquiries/polls is known as the polling interval.
A second technique for collecting status information from the peripheral device is to wait for notification from the peripheral device that an interrupt has occurred at the peripheral device. Notification of the interrupt sent from the peripheral device is commonly referred to as a trap. However, only certain peripheral devices support notifying the computer system that an interrupt has occurred at the peripheral device. The devices that support traps usually maintain a data structure such as a registration table that lists the addresses of the systems (e.g., TCP/IP addresses) to which the peripheral device will send traps.
The registration table may be generated by a series of management application (e.g., Simple Network Management Protocol) requests issued by the computer systems interconnected to the peripheral device. Moreover, the registration table may reside in a memory device local to the peripheral device, or alternatively may reside on a storage device separate from the peripheral device. The registration table may, however, be a fixed size, which would limit the number of computer systems that may receive traps.
In addition, there are issues regarding the reliability of transmitting the traps. More specifically, when using SNMP as the communication protocol, the traps are typically transferred using UDP, which does not guarantee delivery of the traps. As a result, if a trap is not properly delivered to an addressee, the intended recipient has no way of knowing that a trap was sent to them but has failed to arrive.
The management applications may use traps, polling, or both to discover changes in the peripheral device being monitored. For example, traps can be combined with a slow polling rate for a reasonable compromise between the reliability of polling and the increased network load that results from polling. However, a fixed algorithm of polling every X seconds and receiving traps as they occur, may not provide reliable monitoring of the peripheral device""s status.
For example, if a computer suddenly becomes unregistered to receive traps, or had failed to successfully register, the rate of polling implemented at that time may not be frequent enough to satisfactorily monitor the status of the peripheral device.
Therefore, a need exists for adjusting the rate of polling peripheral devices as the status and/or reliability of receiving traps changes.
The present invention provides a method and apparatus for adjusting an interval of polling a peripheral device (e.g., printer) for status information, based on the status and/or reliability of receiving traps. In one embodiment of the present invention, short polling intervals are used to poll a peripheral device when a station (e.g., computer system) is not receiving adequate and/or reliable notification of interrupts/alerts that occur at the peripheral device. Long polling intervals are used to poll the peripheral device when the station is receiving adequate and/or reliable notification of interrupts that occur at the peripheral device.